{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": [
    "from matplotlib import pyplot as plt\n",
    "\n",
    "\n",
    "%matplotlib inline"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "['value', 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.6000000000000001, 0.7000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.5, 0.6000000000000001, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.6000000000000001, 0.5, 0.5, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.5, 0.6000000000000001, 0.5, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.7000000000000001, 0.7000000000000001, 0.6000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.7000000000000001, 0.8, 0.7000000000000001, 0.8, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.8, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.8, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.8, 0.7000000000000001, 0.8, 0.8, 0.8, 0.7000000000000001, 0.8, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.8, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.9, 0.9, 0.8, 0.8, 0.8, 0.8, 0.9, 0.9, 0.9, 0.8, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9]\n"
     ]
    }
   ],
   "source": [
    "import csv\n",
    "dict={}\n",
    "dates = ['01-10-2017.csv','02-10-2017.csv','03-10-2017.csv','04-10-2017.csv','05-10-2017.csv','06-10-2017.csv','07-10-2017.csv','08-10-2017.csv','09-10-2017.csv','10-10-2017.csv','11-10-2017.csv','12-10-2017.csv','13-10-2017.csv','14-10-2017.csv','15-10-2017.csv','16-10-2017.csv','17-10-2017.csv','18-10-2017.csv','19-10-2017.csv','20-10-2017.csv','21-10-2017.csv','22-10-2017.csv','23-10-2017.csv','24-10-2017.csv','25-10-2017.csv','26-10-2017.csv','27-10-2017.csv','28-10-2017.csv','29-10-2017.csv','30-10-2017.csv']\n",
    "for i in range(len(dates)):\n",
    "    dict[dates[i]] = []\n",
    "    time = []\n",
    "    for d in csv.DictReader(open(dates[i]), delimiter=','):\n",
    "        time.append(d['time'])\n",
    "        dict[dates[i]].append(float(d['value']))\n",
    "n = len(dict[dates[len(dates)-1]])\n",
    "m = len(dates)\n",
    "alpha  = [0]*n\n",
    "alphamin = ['value']+[0.1]*n\n",
    "forecast =[[0]*n for i in range(m)]\n",
    "forecast[1] = [dict[dates[0]][j] for j in range(n)]\n",
    "for j in range(n):\n",
    "    mse = [0]*9\n",
    "    for k in range(1,10):\n",
    "        alpha[j] = k*0.1\n",
    "        for i in range(2,m):\n",
    "            forecast[i][j] = (alpha[j]*dict[dates[i-1]][j]) + ((1 - alpha[j])*forecast[i-1][j])\n",
    "        for i in range(1,m):\n",
    "            mse[k-1] += (forecast[i][j] - dict[dates[i]][j])**2\n",
    "    min = mse[0]\n",
    "    for i in range(1,9):\n",
    "        if mse[i]<min:\n",
    "            min = mse[i]\n",
    "            alphamin[j+1] = (i+1)*0.1\n",
    "print(alphamin)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "00:00  :  2422.63  :  2409.349467491074\n",
      "00:05  :  2389.86  :  2390.5189076103775\n",
      "00:10  :  2387.6  :  2373.1709906991146\n",
      "00:15  :  2368.96  :  2358.53816933174\n",
      "00:20  :  2357.36  :  2358.7102694608284\n",
      "00:25  :  2356.69  :  2332.709280430927\n",
      "00:30  :  2330.78  :  2330.347374664965\n",
      "00:35  :  2312.04  :  2323.458354378514\n",
      "00:40  :  2310.26  :  2307.8403063750607\n",
      "00:45  :  2301.54  :  2296.859362558537\n",
      "00:50  :  2288.46  :  2296.0833570499094\n",
      "00:55  :  2277.89  :  2274.6484614498845\n",
      "01:00  :  2263.68  :  2266.2827378952184\n",
      "01:05  :  2245.69  :  2260.9225755470034\n",
      "01:10  :  2234.21  :  2250.8974756584244\n",
      "01:15  :  2218.06  :  2237.9774243320617\n",
      "01:20  :  2220.87  :  2229.2379260482107\n",
      "01:25  :  2206.05  :  2223.1165184278225\n",
      "01:30  :  2207.38  :  2214.3107152181483\n",
      "01:35  :  2185.63  :  2208.8027742930917\n",
      "01:40  :  2177.92  :  2194.9163684238783\n",
      "01:45  :  2182.39  :  2197.7729558514384\n",
      "01:50  :  2159.06  :  2184.0198597506296\n",
      "01:55  :  2152.87  :  2188.5856117958124\n",
      "02:00  :  2148.62  :  2182.0500343065587\n",
      "02:05  :  2160.67  :  2174.356040631096\n",
      "02:10  :  2145.69  :  2166.2908662019327\n",
      "02:15  :  2146.51  :  2165.12158119281\n",
      "02:20  :  2135.76  :  2157.192073974847\n",
      "02:25  :  2137.43  :  2152.9680877064193\n",
      "02:30  :  2132.8  :  2144.0221979654075\n",
      "02:35  :  2137.16  :  2135.460631126274\n",
      "02:40  :  2120.29  :  2137.646776847218\n",
      "02:45  :  2114.39  :  2136.870060765479\n",
      "02:50  :  2104.76  :  2131.325560963463\n",
      "02:55  :  2091.19  :  2124.5239629620983\n",
      "03:00  :  2095.51  :  2120.2799844137144\n",
      "03:05  :  2101.07  :  2116.3357073553743\n",
      "03:10  :  2091.21  :  2120.813637541469\n",
      "03:15  :  2097.74  :  2106.6641703670375\n",
      "03:20  :  2094.47  :  2098.213423797323\n",
      "03:25  :  2084.02  :  2115.823406364273\n",
      "03:30  :  2083.76  :  2098.108567178459\n",
      "03:35  :  2080.26  :  2115.467637395466\n",
      "03:40  :  2073.57  :  2109.1404117807256\n",
      "03:45  :  2076.01  :  2110.7994973278014\n",
      "03:50  :  2088.85  :  2116.015935917627\n",
      "03:55  :  2075.14  :  2112.9439743624653\n",
      "04:00  :  2077.8  :  2116.8757379954927\n",
      "04:05  :  2092.82  :  2123.607040844226\n",
      "04:10  :  2091.76  :  2123.61927248523\n",
      "04:15  :  2087.44  :  2128.0805782091084\n",
      "04:20  :  2091.29  :  2133.710337135495\n",
      "04:25  :  2091.96  :  2130.693551609928\n",
      "04:30  :  2109.59  :  2131.9975798011833\n",
      "04:35  :  2115.33  :  2139.3641425432957\n",
      "04:40  :  2121.79  :  2148.1093128606353\n",
      "04:45  :  2125.32  :  2147.2954318515076\n",
      "04:50  :  2136.65  :  2159.617662326374\n",
      "04:55  :  2145.77  :  2152.1323552876847\n",
      "05:00  :  2152.96  :  2171.6952636938495\n",
      "05:05  :  2191.09  :  2211.4842565345766\n",
      "05:10  :  2196.32  :  2207.4249360324543\n",
      "05:15  :  2245.57  :  2248.4831586837768\n",
      "05:20  :  2266.28  :  2264.3067207717895\n",
      "05:25  :  2282.25  :  2282.8898135375975\n",
      "05:30  :  2334.46  :  2313.4203945732115\n",
      "05:35  :  2348.37  :  2337.070090560913\n",
      "05:40  :  2366.0  :  2360.2464589309693\n",
      "05:45  :  2429.18  :  2396.2707066726684\n",
      "05:50  :  2475.37  :  2419.1772463607786\n",
      "05:55  :  2514.43  :  2450.353620147705\n",
      "06:00  :  2531.04  :  2471.0464861297605\n",
      "06:05  :  2601.03  :  2512.623696594238\n",
      "06:10  :  2652.45  :  2554.262385978699\n",
      "06:15  :  2717.8  :  2583.90077583313\n",
      "06:20  :  2746.04  :  2618.723770370483\n",
      "06:25  :  2798.49  :  2659.0427850151063\n",
      "06:30  :  2832.57  :  2678.750276107788\n",
      "06:35  :  2858.89  :  2718.065587501526\n",
      "06:40  :  2881.12  :  2747.1057556737387\n",
      "06:45  :  2881.12  :  2754.6858776474\n",
      "06:50  :  2915.79  :  2754.127858963013\n",
      "06:55  :  2942.48  :  2781.431458840423\n",
      "07:00  :  2914.07  :  2795.558280071331\n",
      "07:05  :  2900.55  :  2797.8996082918375\n",
      "07:10  :  2899.67  :  2798.431356231533\n",
      "07:15  :  2911.7  :  2796.7176434707644\n",
      "07:20  :  2929.4  :  2789.32955336577\n",
      "07:25  :  2895.43  :  2805.2439677047732\n",
      "07:30  :  2882.37  :  2808.1795625934606\n",
      "07:35  :  2851.63  :  2792.5318960742343\n",
      "07:40  :  2873.03  :  2803.3797637400025\n",
      "07:45  :  2870.79  :  2777.6868072392767\n",
      "07:50  :  2854.42  :  2786.873581822133\n",
      "07:55  :  2875.27  :  2817.0520858603386\n",
      "08:00  :  2896.37  :  2800.655005266399\n",
      "08:05  :  2857.56  :  2815.6883273755066\n",
      "08:10  :  2905.84  :  2809.432171330633\n",
      "08:15  :  2901.09  :  2824.6810473690557\n",
      "08:20  :  2930.72  :  2829.726090413161\n",
      "08:25  :  2931.64  :  2848.907824302245\n",
      "08:30  :  2931.61  :  2854.3074372507685\n",
      "08:35  :  2957.73  :  2866.0253254727495\n",
      "08:40  :  2946.51  :  2892.68190658045\n",
      "08:45  :  2968.83  :  2907.133413360598\n",
      "08:50  :  2958.8  :  2923.8266523943576\n",
      "08:55  :  2992.34  :  2939.421338990943\n",
      "09:00  :  3000.32  :  2930.714356507921\n",
      "09:05  :  3026.55  :  2970.6472327124893\n",
      "09:10  :  3052.86  :  3004.7117511532483\n",
      "09:15  :  3103.53  :  3105.790158985808\n",
      "09:20  :  3140.48  :  3096.0283001274333\n",
      "09:25  :  3164.97  :  3135.408648110837\n",
      "09:30  :  3228.33  :  3170.3543845103404\n",
      "09:35  :  3249.15  :  3222.572680572163\n",
      "09:40  :  3279.44  :  3240.6723137872696\n",
      "09:45  :  3284.95  :  3276.7602899102326\n",
      "09:50  :  3341.12  :  3314.9175104246137\n",
      "09:55  :  3377.9  :  3315.559261116693\n",
      "10:00  :  3342.15  :  3338.766262594543\n",
      "10:05  :  3413.15  :  3367.1929674333855\n",
      "10:10  :  3421.05  :  3387.1930523409264\n",
      "10:15  :  3406.08  :  3402.7485284109343\n",
      "10:20  :  3426.48  :  3415.6613621504166\n",
      "10:25  :  3409.34  :  3425.4162479850306\n",
      "10:30  :  3416.27  :  3405.831023476364\n",
      "10:35  :  3416.8  :  3436.1633973510834\n",
      "10:40  :  3431.99  :  3432.05559947586\n",
      "10:45  :  3432.84  :  3441.8858698010267\n",
      "10:50  :  3442.97  :  3430.119963583039\n",
      "10:55  :  3455.71  :  3433.272725716325\n",
      "11:00  :  3450.86  :  3451.583261942335\n",
      "11:05  :  3445.63  :  3443.9956997182344\n",
      "11:10  :  3474.9  :  3439.9181849105967\n",
      "11:15  :  3453.59  :  3458.930120941878\n",
      "11:20  :  3449.62  :  3456.5298129326775\n",
      "11:25  :  3466.08  :  3458.926950638193\n",
      "11:30  :  3460.55  :  3461.799186640353\n",
      "11:35  :  3459.58  :  3456.3193039660023\n",
      "11:40  :  3429.45  :  3483.4127578921325\n",
      "11:45  :  3456.17  :  3446.6513347658242\n",
      "11:50  :  3445.86  :  3457.664227660681\n",
      "11:55  :  3448.07  :  3455.9803892217983\n",
      "12:00  :  3416.89  :  3419.1897620083587\n",
      "12:05  :  3408.52  :  3431.809754110611\n",
      "12:10  :  3400.04  :  3417.163294284117\n",
      "12:15  :  3404.59  :  3405.8786668850753\n",
      "12:20  :  3402.42  :  3406.503355942569\n",
      "12:25  :  3377.53  :  3399.0398032713038\n",
      "12:30  :  3384.23  :  3352.7550583254742\n",
      "12:35  :  3365.09  :  3376.956257022071\n",
      "12:40  :  3388.34  :  3359.7267231070623\n",
      "12:45  :  3339.38  :  3358.035080655441\n",
      "12:50  :  3312.3  :  3347.0855212778215\n",
      "12:55  :  3317.4  :  3329.524751574524\n",
      "13:00  :  3261.17  :  3268.2614074868675\n",
      "13:05  :  3183.3  :  3200.0960940292243\n",
      "13:10  :  3095.53  :  3145.2583517237363\n",
      "13:15  :  3109.84  :  3138.6033879180877\n",
      "13:20  :  3091.75  :  3117.1602759569832\n",
      "13:25  :  3073.01  :  3105.456238092507\n",
      "13:30  :  3079.84  :  3102.8107494400197\n",
      "13:35  :  3119.06  :  3124.561862132989\n",
      "13:40  :  3131.0  :  3168.1508132411273\n",
      "13:45  :  3152.37  :  3182.1310398342785\n",
      "13:50  :  3180.64  :  3201.561600216376\n",
      "13:55  :  3197.45  :  3196.4402973436318\n",
      "14:00  :  3175.12  :  3205.580592982089\n",
      "14:05  :  3217.95  :  3241.5642405500926\n",
      "14:10  :  3222.14  :  3217.663786062042\n",
      "14:15  :  3214.35  :  3218.606423819446\n",
      "14:20  :  3231.15  :  3245.9963885196585\n",
      "14:25  :  3226.82  :  3250.2446327378493\n",
      "14:30  :  3231.88  :  3253.2049669428907\n",
      "14:35  :  3234.02  :  3259.149723111941\n",
      "14:40  :  3233.67  :  3266.1125801099706\n",
      "14:45  :  3239.28  :  3271.444763576673\n",
      "14:50  :  3248.97  :  3293.0155812338967\n",
      "14:55  :  3244.77  :  3262.0546838932246\n",
      "15:00  :  3278.39  :  3260.592489179221\n",
      "15:05  :  3240.77  :  3265.8437846983015\n",
      "15:10  :  3288.27  :  3258.70270240159\n",
      "15:15  :  3285.62  :  3270.8517607003823\n",
      "15:20  :  3270.32  :  3234.2906751410997\n",
      "15:25  :  3278.93  :  3278.0075084520236\n",
      "15:30  :  3271.93  :  3243.3279070946596\n",
      "15:35  :  3255.17  :  3258.8993174810944\n",
      "15:40  :  3266.69  :  3220.316961087935\n",
      "15:45  :  3302.66  :  3242.6866046862688\n",
      "15:50  :  3255.57  :  3197.5369070505085\n",
      "15:55  :  3276.81  :  3208.945041459164\n",
      "16:00  :  3240.43  :  3200.1095168766824\n",
      "16:05  :  3267.77  :  3228.6012291193165\n",
      "16:10  :  3261.51  :  3211.115473067736\n",
      "16:15  :  3273.05  :  3206.264560367754\n",
      "16:20  :  3281.29  :  3228.992139600731\n",
      "16:25  :  3316.6  :  3246.925877470571\n",
      "16:30  :  3284.71  :  3276.376311634907\n",
      "16:35  :  3268.3  :  3221.221366884894\n",
      "16:40  :  3303.83  :  3263.50958573734\n",
      "16:45  :  3298.64  :  3255.2872694657117\n",
      "16:50  :  3286.65  :  3256.296256254328\n",
      "16:55  :  3289.83  :  3252.4332375075996\n",
      "17:00  :  3325.41  :  3282.2282777041573\n",
      "17:05  :  3331.15  :  3276.2190873303057\n",
      "17:10  :  3360.35  :  3310.338984042042\n",
      "17:15  :  3361.65  :  3306.555112793001\n",
      "17:20  :  3401.7  :  3340.4921135513014\n",
      "17:25  :  3396.77  :  3321.993191182175\n",
      "17:30  :  3444.21  :  3350.732318406741\n",
      "17:35  :  3451.03  :  3397.7642708977296\n",
      "17:40  :  3467.93  :  3400.0296363827642\n",
      "17:45  :  3478.56  :  3445.2244074293676\n",
      "17:50  :  3534.62  :  3447.074452840684\n",
      "17:55  :  3562.07  :  3526.082491710505\n",
      "18:00  :  3601.83  :  3536.3873717066112\n",
      "18:05  :  3601.81  :  3542.4487285056493\n",
      "18:10  :  3610.39  :  3538.948105062316\n",
      "18:15  :  3594.51  :  3554.380019017847\n",
      "18:20  :  3606.88  :  3556.6751973994405\n",
      "18:25  :  3613.85  :  3546.9528503862575\n",
      "18:30  :  3585.76  :  3553.62046789581\n",
      "18:35  :  3605.61  :  3583.0595652185843\n",
      "18:40  :  3563.32  :  3545.5258305876923\n",
      "18:45  :  3575.95  :  3516.461953524862\n",
      "18:50  :  3573.43  :  3524.505026489949\n",
      "18:55  :  3544.47  :  3516.2058791089135\n",
      "19:00  :  3514.83  :  3513.21031036687\n",
      "19:05  :  3531.16  :  3507.7771463209347\n",
      "19:10  :  3492.37  :  3483.423115750663\n",
      "19:15  :  3498.46  :  3450.394113177107\n",
      "19:20  :  3468.52  :  3443.406332776015\n",
      "19:25  :  3435.12  :  3452.142484975182\n",
      "19:30  :  3418.42  :  3400.876771804951\n",
      "19:35  :  3394.83  :  3402.434547321217\n",
      "19:40  :  3381.0  :  3389.0357719556696\n",
      "19:45  :  3365.75  :  3383.6982408196413\n",
      "19:50  :  3320.13  :  3351.970252151955\n",
      "19:55  :  3300.47  :  3357.595077078999\n",
      "20:00  :  3279.81  :  3313.4496025345543\n",
      "20:05  :  3218.08  :  3270.65661890084\n",
      "20:10  :  3225.94  :  3256.3388852577964\n",
      "20:15  :  3210.6  :  3239.621484696494\n",
      "20:20  :  3179.57  :  3174.0760682098967\n",
      "20:25  :  3169.78  :  3209.3975380862767\n",
      "20:30  :  3124.26  :  3180.1434059318185\n",
      "20:35  :  3054.92  :  3139.937208389782\n",
      "20:40  :  3070.65  :  3132.7796491768427\n",
      "20:45  :  3031.57  :  3083.8202092231795\n",
      "20:50  :  3020.53  :  3038.27408395185\n",
      "20:55  :  2974.74  :  3045.038175695475\n",
      "21:00  :  2924.98  :  2980.0386882839675\n",
      "21:05  :  2894.82  :  2918.806790628907\n",
      "21:10  :  2851.23  :  2925.932293521137\n",
      "21:15  :  2846.35  :  2912.531807113893\n",
      "21:20  :  2835.66  :  2902.387578375805\n",
      "21:25  :  2834.72  :  2888.2076951905347\n",
      "21:30  :  2807.64  :  2895.1587688194245\n",
      "21:35  :  2819.69  :  2878.870339681198\n",
      "21:40  :  2789.08  :  2874.523097633572\n",
      "21:45  :  2782.95  :  2867.1905412300544\n",
      "21:50  :  2783.25  :  2837.271487524449\n",
      "21:55  :  2768.8  :  2839.468965501423\n",
      "22:00  :  2725.62  :  2821.884446800877\n",
      "22:05  :  2711.74  :  2792.818262072399\n",
      "22:10  :  2684.13  :  2792.862020196303\n",
      "22:15  :  2659.83  :  2762.67053114674\n",
      "22:20  :  2646.25  :  2741.438311390116\n",
      "22:25  :  2643.3  :  2722.646621380248\n",
      "22:30  :  2625.33  :  2730.5049681176724\n",
      "22:35  :  2599.46  :  2716.6591497016716\n",
      "22:40  :  2602.57  :  2704.10989961353\n",
      "22:45  :  2573.63  :  2666.950762666873\n",
      "22:50  :  2551.76  :  2647.7966859042485\n",
      "22:55  :  2548.19  :  2668.10432538233\n",
      "23:00  :  2520.56  :  2623.154169757112\n",
      "23:05  :  2515.78  :  2629.2474327349446\n",
      "23:10  :  2471.9  :  2588.7988343756183\n",
      "23:15  :  2480.82  :  2570.3117976982217\n",
      "23:20  :  2447.98  :  2551.400353804696\n",
      "23:25  :  2430.25  :  2538.6641304313225\n",
      "23:30  :  2414.38  :  2520.8321510821997\n",
      "23:35  :  2391.89  :  2514.5261397231798\n",
      "23:40  :  2390.34  :  2504.150305006684\n",
      "23:45  :  2375.75  :  2472.551009544742\n",
      "23:50  :  2364.92  :  2456.912222111562\n",
      "23:55  :  2333.93  :  2439.683841422095\n",
      "971.2428262589463\n"
     ]
    }
   ],
   "source": [
    "import csv\n",
    "\n",
    "dict={}\n",
    "data = ['11-10-2017.csv','12-10-2017.csv','13-10-2017.csv','14-10-2017.csv','15-10-2017.csv','16-10-2017.csv','17-10-2017.csv','18-10-2017.csv','19-10-2017.csv','20-10-2017.csv','21-10-2017.csv','22-10-2017.csv','23-10-2017.csv','24-10-2017.csv','25-10-2017.csv','26-10-2017.csv','27-10-2017.csv','28-10-2017.csv','29-10-2017.csv','30-10-2017.csv','31-10-2017.csv']\n",
    "for i in range(len(data)):\n",
    "    dict[data[i]] = []\n",
    "    time = []\n",
    "    for d in csv.DictReader(open(data[i]), delimiter=','):\n",
    "        time.append(d['time'])\n",
    "        dict[data[i]].append(float(d['value']))\n",
    "n = len(dict[data[len(data)-1]])\n",
    "alpha = [0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.6000000000000001, 0.7000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.5, 0.6000000000000001, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.5, 0.6000000000000001, 0.5, 0.5, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.5, 0.6000000000000001, 0.5, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.6000000000000001, 0.7000000000000001, 0.7000000000000001, 0.6000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.7000000000000001, 0.8, 0.7000000000000001, 0.8, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.8, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.8, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.8, 0.7000000000000001, 0.8, 0.8, 0.8, 0.7000000000000001, 0.8, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.8, 0.7000000000000001, 0.7000000000000001, 0.7000000000000001, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.8, 0.9, 0.9, 0.8, 0.8, 0.8, 0.8, 0.9, 0.9, 0.9, 0.8, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9, 0.9]\n",
    "forecast={}\n",
    "forecast[data[1]] = [dict[data[0]][i] for i in range(len(dict[data[1]]))]\n",
    "for j in range(2,len(data)):\n",
    "    forecast[data[j]] = []\n",
    "    for i in range(n):\n",
    "        forecast[data[j]].append((alpha[i]*dict[data[j-1]][i]) + ((1 - alpha[i])*forecast[data[j-1]][i]))\n",
    "for i in range(n):\n",
    "    print(time[i],\" : \",dict[data[len(data)-1]][i],\" : \",forecast[data[len(data)-1]][i])\n",
    "mse = 0\n",
    "for i in range(n):\n",
    "    mse += (dict[data[len(data)-1]][i] - forecast[data[len(data)-1]][i])**2\n",
    "print((mse)**0.5)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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\nVeb/Ac7fzy8GY4QxAAAAAElFTkSuQmCC\n",
      "text/plain": [
       "<matplotlib.figure.Figure at 0x179d5b18390>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.plot(dict[data[len(data)-1]])\n",
    "plt.plot(forecast[data[len(data)-1]])\n",
    "plt.legend(['load', 'forecast'])\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {
    "collapsed": true
   },
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.5"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 2
}
